package org.lanyu.springainovel.common.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import org.lanyu.springainovel.common.handler.CustomJsonTypeHandler;

import java.util.Date;

/**
 * 用户实体�? */
@Data
@TableName("u_user")
public class User {

    /**
     * 用户ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 用户�?     */
    private String username;

    /**
     * 密码
     */
    private String password;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 手机�?     */
    private String phone;

    /**
     * 角色 (ROLE_ADMIN, ROLE_USER)
     */
    @TableField("role")
    private String role;

    /**
     * 用户习惯配置json
     * {
     * embeddingModelId: 嵌入模型ID,
     * chatModelId: 对话模型ID,
     * theme: 主题(light/dark),
     * enableMemory: 是否默认启用记忆,
     * }
     */
    @TableField(typeHandler = CustomJsonTypeHandler.class)
    private JSONObject custom;

    /**
     * 是否启用
     */
    private Boolean enabled;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private Date updateTime;
}
